<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta name="generator" content="JsDoc Toolkit" />
		
		<title>JsDoc Reference - GREUtils.XPCOM</title>

		<style type="text/css">
			/* default.css */
body
{
	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
	width: 800px;
}

.header
{
	clear: both;
	background-color: #ccc;
	padding: 8px;
}

h1
{
	font-size: 150%;
	font-weight: bold;
	padding: 0;
	margin: 1em 0 0 .3em;
}

hr
{
	border: none 0;
	border-top: 1px solid #7F8FB1;
	height: 1px;
}

pre.code
{
	display: block;
	padding: 8px;
	border: 1px dashed #ccc;
}

#index
{
	margin-top: 24px;
	float: left;
	width: 160px;
	position: absolute;
	left: 8px;
	background-color: #F3F3F3;
	padding: 8px;
}

#content
{
	margin-left: 190px;
	width: 600px;
}

.classList
{
	list-style-type: none;
	padding: 0;
	margin: 0 0 0 8px;
	font-family: arial, sans-serif;
	font-size: 1em;
	overflow: auto;
}

.classList li
{
	padding: 0;
	margin: 0 0 8px 0;
}

.summaryTable { width: 100%; }

h1.classTitle
{
	font-size:170%;
	line-height:130%;
}

h2 { font-size: 110%; }
caption, div.sectionTitle
{
	background-color: #7F8FB1;
	color: #fff;
	font-size:130%;
	text-align: left;
	padding: 2px 6px 2px 6px;
	border: 1px #7F8FB1 solid;
}

div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }

.summaryTable td
{
	vertical-align: top;
	padding: 4px;
	border-bottom: 1px #7F8FB1 solid;
	border-right: 1px #7F8FB1 solid;
}

/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
	border-left: 1px #7F8FB1 solid;
	width: 140px;
	text-align: right;
}

td.attributes, .fixedFont
{
	line-height: 15px;
	color: #002EBE;
	font-family: "Courier New",Courier,monospace;
	font-size: 13px;
}

.summaryTable td.nameDescription
{
	text-align: left;
	font-size: 13px;
	line-height: 15px;
}

.summaryTable td.nameDescription, .description
{
	line-height: 15px;
	padding: 4px;
	padding-left: 4px;
}

.summaryTable { margin-bottom: 8px; }

ul.inheritsList
{
	list-style: square;
	margin-left: 20px;
	padding-left: 0;
}

.detailList {
	margin-left: 20px; 
	line-height: 15px;
}
.detailList dt { margin-left: 20px; }

.detailList .heading
{
	font-weight: bold;
	padding-bottom: 6px;
	margin-left: 0;
}

.light, td.attributes, .light a:link, .light a:visited
{
	color: #777;
	font-style: italic;
}

.fineprint
{
	text-align: right;
	font-size: 10px;
}
		</style>
	</head>

	<body>
<!-- ============================== header ================================= -->	
		<!-- begin static/header.html -->
		<div id="header">
</div>
		<!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
		<div id="index">
			<!-- begin publish.classesIndex -->
			<div align="center"><a href="../index.html">Class Index</a>
| <a href="../files.html">File Index</a></div>
<hr />
<h2>Classes</h2>
<ul class="classList">
	
	<li><i><a href="../symbols/_global_.html">_global_</a></i></li>
	
	<li><a href="../symbols/GREUtils.html">GREUtils</a></li>
	
	<li><a href="../symbols/GREUtils.Charset.html">GREUtils.Charset</a></li>
	
	<li><a href="../symbols/GREUtils.ControllerAdapter.html">GREUtils.ControllerAdapter</a></li>
	
	<li><a href="../symbols/GREUtils.CryptoHash.html">GREUtils.CryptoHash</a></li>
	
	<li><a href="../symbols/GREUtils.Dialog.html">GREUtils.Dialog</a></li>
	
	<li><a href="../symbols/GREUtils.Dir.html">GREUtils.Dir</a></li>
	
	<li><a href="../symbols/GREUtils.File.html">GREUtils.File</a></li>
	
	<li><a href="../symbols/GREUtils.JSON.html">GREUtils.JSON</a></li>
	
	<li><a href="../symbols/GREUtils.Pref.html">GREUtils.Pref</a></li>
	
	<li><a href="../symbols/GREUtils.Sound.html">GREUtils.Sound</a></li>
	
	<li><a href="../symbols/GREUtils.Thread.html">GREUtils.Thread</a></li>
	
	<li><a href="../symbols/GREUtils.Thread.CallbackRunnableAdapter.html">GREUtils.Thread.CallbackRunnableAdapter</a></li>
	
	<li><a href="../symbols/GREUtils.Thread.WorkerRunnableAdapter.html">GREUtils.Thread.WorkerRunnableAdapter</a></li>
	
	<li><a href="../symbols/GREUtils.XPCOM.html">GREUtils.XPCOM</a></li>
	
</ul>
<hr />
			<!-- end publish.classesIndex -->
		</div>
		
		<div id="content">
<!-- ============================== class title ============================ -->
			<h1 class="classTitle">
				
				Namespace GREUtils.XPCOM
			</h1>

<!-- ============================== class summary ========================== -->			
			<p class="description">
				
			
				GREUtils.XPCOM
A set of utility functions for accessing XPCOM component interfaces and services.
				
				
					<br /><i>Defined in: </i> <a href="../symbols/src/_home_rack_workspace_greutils_dist_GREUtils.js.html">GREUtils.js</a>.
				
			</p>

<!-- ============================== constructor summary ==================== -->			
			
			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class GREUtils.XPCOM.">
				<caption>Namespace Summary</caption>
				<thead>
					<tr>
						<th scope="col">Constructor Attributes</th>
						<th scope="col">Constructor Name and Description</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td class="attributes">&nbsp;</td>
						<td class="nameDescription" >
							<div class="fixedFont">
								<b><a href="../symbols/GREUtils.XPCOM.html#constructor">GREUtils.XPCOM</a></b>
							</div>
							<div class="description">A set of utility functions for accessing XPCOM component interfaces and services.</div>
						</td>
					</tr>
				</tbody>
			</table>
			

<!-- ============================== properties summary ===================== -->
			

<!-- ============================== methods summary ======================== -->
			
				
				
				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class GREUtils.XPCOM.">
					<caption>Method Summary</caption>
					<thead>
						<tr>
							<th scope="col">Method Attributes</th>
							<th scope="col">Method Name and Description</th>
						</tr>
					</thead>
					<tbody>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.Cc">Cc</a></b>(cName)
								</div>
								<div class="description">Returns the XPCOM component by class name.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.Ci">Ci</a></b>(ifaceName)
								</div>
								<div class="description">Returns the XPCOM interface by interface name.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.Cr">Cr</a></b>()
								</div>
								<div class="description">Returns the Components.results object whose properties are the names of well-known
XPCOM result codes, with each value being that of the corresponding result code.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.createInstance">createInstance</a></b>(cName, iName)
								</div>
								<div class="description">Returns an XPCOM instance.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.getConstructor">getConstructor</a></b>(aCID, aInterface, aFunc)
								</div>
								<div class="description">Creates a JavaScript function which can be used to create or construct new instances
of XPCOM components.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.getService">getService</a></b>(cName, iName)
								</div>
								<div class="description">Returns an XPCOM service.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.getUsefulService">getUsefulService</a></b>(serviceName)
								</div>
								<div class="description">Returns commonly used XPCOM services.</div>
							</td>
						</tr>
					
						<tr>
							<td class="attributes">&lt;static&gt; &nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">GREUtils.XPCOM.<b><a href="../symbols/GREUtils.XPCOM.html#.queryInterface">queryInterface</a></b>(obj, ifaceName)
								</div>
								<div class="description">Retrieves a specific interface of an instance of XPCOM component.</div>
							</td>
						</tr>
					
					</tbody>
				</table>
				
				
				
			

<!-- ============================== constructor details ==================== -->		
			
			<div class="details"><a name="constructor"> </a>
				<div class="sectionTitle">
					Namespace Detail
				</div>
				
				<div class="fixedFont">
						<b>GREUtils.XPCOM</b>
				</div>
				
				<div class="description">
					A set of utility functions for accessing XPCOM component interfaces and services.
					
				</div>
				
				
				
				
					
					
					
					
					
					
					

			</div>
			

<!-- ============================== field details ========================== -->		
			

<!-- ============================== method details ========================= -->		
			
				<div class="sectionTitle">
					Method Detail
				</div>
				
					<a name=".Cc"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>Cc</b>(cName)
					
					</div>
					<div class="description">
						Returns the XPCOM component by class name.

This method returns null if the component is not found (i.e. component name does
not exist in Components.classes[]).
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>cName</b>
									
								</dt>
								<dd>This is the name of the XPCOM component</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> The XPCOM component</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".Ci"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>Ci</b>(ifaceName)
					
					</div>
					<div class="description">
						Returns the XPCOM interface by interface name.

This method returns null if the interface is not found (i.e. interface name does
not exist in Components.interfaces[]). If an object is passed in as
parameter "ifaceName" then this object is returned.
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>ifaceName</b>
									
								</dt>
								<dd>This is the name of the XPCOM interface</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> The XPCOM interface</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".Cr"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>Cr</b>()
					
					</div>
					<div class="description">
						Returns the Components.results object whose properties are the names of well-known
XPCOM result codes, with each value being that of the corresponding result code.
Elements in this array can be used to test against unknown nsresult variables or
they can be 'thrown' to indicate failure.
						
						
					</div>
					
					
					
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Array}</span> List of well known XPCOM result codes</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".createInstance"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>createInstance</b>(cName, iName)
					
					</div>
					<div class="description">
						Returns an XPCOM instance.

This method returns an instance of an XPCOM component with a given interface name.
If the component or the interface does not exist, or if the instantiation fails,
then null is returned.
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>cName</b>
									
								</dt>
								<dd>This is the name of the XPCOM component</dd>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>iName</b>
									
								</dt>
								<dd>This is the name of the XPCOM interface</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> An instance of the XPCOM component with the given interface</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".getConstructor"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>getConstructor</b>(aCID, aInterface, aFunc)
					
					</div>
					<div class="description">
						Creates a JavaScript function which can be used to create or construct new instances
of XPCOM components.

If an interface is specified, QueryInterface will be called on each newly-created
instance with this interface.

This method can also accept an optional initializer function (passed in by name),
which will be called on the newly-created instance, using the arguments provided
to the created function when called

If the method fails to create the constructor function, null is returned.

This method is a wrapper for Components.Constructor().
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>aCID</b>
									
								</dt>
								<dd>This is the contract ID of an XPCOM component</dd>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>aInterface</b>
									
								</dt>
								<dd>This is the name of the XPCOM interface</dd>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>aFunc</b>
									
								</dt>
								<dd>This is the name of the initializer function</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> An XPCOM component constructor</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".getService"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>getService</b>(cName, iName)
					
					</div>
					<div class="description">
						Returns an XPCOM service.

This method returns the XPCOM service identified by its Component class and interface
name. If the service does not exist, null is returned.
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>cName</b>
									
								</dt>
								<dd>This is the name of the XPCOM component</dd>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>iName</b>
									
								</dt>
								<dd>This is the name of the XPCOM interface; can be null</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> The XPCOM service</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".getUsefulService"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>getUsefulService</b>(serviceName)
					
					</div>
					<div class="description">
						Returns commonly used XPCOM services.

This method is a shortcut for retrieving commonly used XPCOM services. Each
service is identified by an abbreviated name. If the service does not exist,
null is returned.

The abbreviation scheme is private to GREUtils.
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>serviceName</b>
									
								</dt>
								<dd>This is the abbreviated name of the XPCOM service</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> The XPCOM service</dd>
							
							</dl>
						
						
						

					<hr />
				
					<a name=".queryInterface"> </a>
					<div class="fixedFont">&lt;static&gt; 
					
					<span class="light">{Object}</span>
					<span class="light">GREUtils.XPCOM.</span><b>queryInterface</b>(obj, ifaceName)
					
					</div>
					<div class="description">
						Retrieves a specific interface of an instance of XPCOM component.

This method gets the specified interface for an instance of an XPCOM component
if the interface is supported by the component. Otherwise null is returned.

If the
						
						
					</div>
					
					
					
						
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							
								<dt>
									<span class="light fixedFont">{Object}</span> <b>obj</b>
									
								</dt>
								<dd>This is an instance of XPCOM component</dd>
							
								<dt>
									<span class="light fixedFont">{String}</span> <b>ifaceName</b>
									
								</dt>
								<dd>This is the name of the XPCOM interface</dd>
							
							</dl>
						
						
						
						
						
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							
								<dd><span class="light fixedFont">{Object}</span> The XPCOM component instance with the specified interface</dd>
							
							</dl>
						
						
						

					
				
			
			
			<hr />
		</div>
		
<!-- ============================== footer ================================= -->
		<div class="fineprint" style="clear:both">
			
			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Thu Aug 28 2008 13:30:55 GMT+0800 (CST)
		</div>
	</body>
</html>
